import axios, { AxiosResponse } from "axios";
import useUserStore from "../store/useUserStore";

let userStore: any = undefined

const service = axios.create({
  baseURL: import .meta.env.VITE_API_BASE_URL,
  timeout: 5000,
});


// 请求拦截
service.interceptors.request.use(
  (config) => {
    if(!userStore){
      userStore = useUserStore()
    }
    const token = userStore.token
    if (token) {
      config.headers.Authorization = `Bearer ${token}`;
    }
    return config
  },
);

// 响应拦截
// service.interceptors.response.use(
//   (response: AxiosResponse<IResponseData>) => {
//     // status 是http返回的状态码
//     // data 是服务器返回的数据，规范为{code, data, message}
//     // 为了便于区分，将服务器返回数据重命名为responseData
//     const {status, data: responseData} = response;
//     if (status >= 200 && status < 300) {
//       const {code, data, message} = responseData;
//       if(code === 200){
//         return data
//       }
//       return Promise.reject(new Error(message || 'Error'));
//     } 
//   },
// );


export default service